package com.kuang.myrule;

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class KuangRule {

    //IRule
    //RoundRobinRule ： 轮询（默认）
    //RandomRule ： 随机
    //AvailabilityFilteringRule : 会先过滤掉，跳闸，访问故障的服务~,对剩下的进行轮询
    //RetryRule ：重试，会先按照轮询获取服务，如果服务获取失败，则会在指定时间内重试
    @Bean
    //自定义Ribbon配置的负载均衡类，客户端RibbonConfiguration中已存在的组件与FooConfiguration中的任何组件组成（后者通常会覆盖前者）
    //自定义的组件请注意 它不在|程序的上下文的ComponentScan中，所以要放在单独的不重叠的包中
    public IRule myRule() {
        //return new KuangRandomRule();//默认是轮询，现在我们自定义为KuangRandomRule
        return new RandomRule();//默认是轮询，随机
    }

}
